﻿using DFGK_WMS.Model.Dto;
using DFGK_WMS.Model.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DFGK.IService
{
    public interface IReceivingBillService
    {
        /// <summary>
        /// 添加收货单
        /// </summary>
        /// <param name="m"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        bool AddReceivingBill(ReceivingBill m, out string message);
        /// <summary>
        /// 收获管理显示
        /// </summary>
        /// <param name="ordersn"></param>
        /// <param name="billtype"></param>
        /// <param name="materialkey"></param>
        /// <param name="status"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <param name="totalCount"></param>
        /// <returns></returns>
        List<ReceivingBillListDto> GetReceivingBillList(string? ordersn,int? billtype,string? materialkey,int status, int pageIndex, int pageSize, out int totalCount);
        /// <summary>
        /// 删除收货单
        /// </summary>
        /// <param name="rid"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        bool DelReceivingBill(long rid,out string message);
        /// <summary>
        /// 根据Id获取对象
        /// </summary>
        /// <param name="rid"></param>
        /// <returns></returns>
        ReceivingBill? GetReceivingBillById(long rid);
        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="m"></param>
        /// <returns></returns>
        bool UpdReceivingBill(ReceivingBill m, out string message);

        /// <summary>
        /// 根据物料编码获取收货单信息
        /// </summary>
        /// <param name="code"></param>
        /// <returns></returns>
        ReceivingBillListDto? GetReceivingBillByMaerialCode(string code);

        /// <summary>
        /// EBS下发入库单据(收货单)
        /// </summary>
        /// <param name="eBSReceivingBillList"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        bool EBSAddReceivingBill(EBSReceivingBillDTO eBSReceivingBillList, out string message);
    }
}
